package org.misalen.web.database.model.mysql.pro;

import java.math.BigInteger;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.persistence.Transient;

import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;
import org.misalen.annotations.Enumeration;
import org.misalen.annotations.ModelComment;
import org.misalen.web.database.model.mysql.BaseSqlModel;

/**
 * 视频广告内容
 * 
 * @author jianhun
 *
 */
@Entity
@Table(name = "ProVideoInfo")
@DynamicInsert(true)
@DynamicUpdate(true)
public class ProVideoInfo extends BaseSqlModel {

	@ModelComment("视频名称")
	@Column(name = "videoName", length = 50, nullable = false)
	private String videoName;

	@ModelComment("缩略图")
	@Column(name = "videoThumUrl", length = 255, nullable = false)
	private String videoThumUrl;

	@ModelComment("视频地址")
	@Column(name = "videoUrl", length = 255, nullable = false)
	private String videoUrl;

	@ModelComment("发布状态")
	@Enumeration("pro-video-state")
	@Column(name = "state", length = 50, nullable = false)
	private String state;

	@ModelComment("广告类型")
	@Enumeration("pro-video-advertising-type")
	@Column(name = "type", length = 50, nullable = false)
	private String type;

	@ModelComment("视频时长")
	@Column(name = "videoTime", nullable = false, columnDefinition = " bigint ")
	private BigInteger videoTime;

	@ModelComment("视频大小")
	@Column(name = "videoSize", nullable = false, columnDefinition = " bigint ")
	private BigInteger videoSize;

	@ModelComment("归属用户")
	@Column(name = "userId", nullable = false)
	private String userId;

	@ModelComment("区域范围")
	@Enumeration("pro-city")
	@Column(name = "areaScope", length = 50)
	private String areaScope;

	@ModelComment("开始日期")
	@Column(name = "startDate")
	private Date startDate;

	@ModelComment("结束日期")
	@Column(name = "stopDate")
	private Date stopDate;

	@ModelComment("红包最小值")
	@Column(name = "redEnvelopMin")
	private Integer redEnvelopMin;

	@ModelComment("红包最大值")
	@Column(name = "redEnvelopMax")
	private Integer redEnvelopMax;

	@ModelComment("红包总额")
	@Column(name = "redEnvelopTotal")
	private Integer redEnvelopTotal;

	@ModelComment("红包剩余")
	@Column(name = "redEnvelopResidue")
	private Integer redEnvelopResidue;

	@ModelComment("终端数量")
	@Column(name = "driverNum")
	private Integer driverNum;

	@ModelComment("播放终端")
	@Column(name = "driverPlayNum")
	private Integer driverPlayNum;

	@ModelComment("是否在期限内")
	@Column(name = "timeLimit")
	private String timeLimit;

	@ModelComment("是否抢完")
	@Column(name = "grabThe")
	private String grabThe;

	@Transient
	@ModelComment("归属用户名")
	private String userName;

	@Transient
	@ModelComment("是否抢到")
	private String isGet;

	@Transient
	@ModelComment("抢到金额(分)")
	private BigInteger getMoney;

	@Transient
	@ModelComment("已经播放时长")
	private BigInteger playedTime;

	@Transient
	@ModelComment("应播播放时长")
	private BigInteger playeTime;

	public BigInteger getPlayedTime() {
		return playedTime;
	}

	public void setPlayedTime(BigInteger playedTime) {
		this.playedTime = playedTime;
	}

	public BigInteger getPlayeTime() {
		return playeTime;
	}

	public void setPlayeTime(BigInteger playeTime) {
		this.playeTime = playeTime;
	}

	/**
	 * 获取isGet
	 * 
	 * @return isGet isGet
	 */
	public String getIsGet() {
		return isGet;
	}

	/**
	 * 设置isGet
	 * 
	 * @param isGet
	 *            isGet
	 */
	public void setIsGet(String isGet) {
		this.isGet = isGet;
	}

	/**
	 * 获取getMoney
	 * 
	 * @return getMoney getMoney
	 */
	public BigInteger getGetMoney() {
		return getMoney;
	}

	/**
	 * 设置getMoney
	 * 
	 * @param getMoney
	 *            getMoney
	 */
	public void setGetMoney(BigInteger getMoney) {
		this.getMoney = getMoney;
	}

	public String getTimeLimit() {
		return timeLimit;
	}

	public void setTimeLimit(String timeLimit) {
		this.timeLimit = timeLimit;
	}

	public String getGrabThe() {
		return grabThe;
	}

	public void setGrabThe(String grabThe) {
		this.grabThe = grabThe;
	}

	/**
	 * 获取videoName
	 * 
	 * @return videoName videoName
	 */
	public String getVideoName() {
		return videoName;
	}

	/**
	 * 设置videoName
	 * 
	 * @param videoName
	 *            videoName
	 */
	public void setVideoName(String videoName) {
		this.videoName = videoName;
	}

	/**
	 * 获取videoThumUrl
	 * 
	 * @return videoThumUrl videoThumUrl
	 */
	public String getVideoThumUrl() {
		return videoThumUrl;
	}

	/**
	 * 设置videoThumUrl
	 * 
	 * @param videoThumUrl
	 *            videoThumUrl
	 */
	public void setVideoThumUrl(String videoThumUrl) {
		this.videoThumUrl = videoThumUrl;
	}

	/**
	 * 获取videoUrl
	 * 
	 * @return videoUrl videoUrl
	 */
	public String getVideoUrl() {
		return videoUrl;
	}

	/**
	 * 设置videoUrl
	 * 
	 * @param videoUrl
	 *            videoUrl
	 */
	public void setVideoUrl(String videoUrl) {
		this.videoUrl = videoUrl;
	}

	/**
	 * 获取state
	 * 
	 * @return state state
	 */
	public String getState() {
		return state;
	}

	/**
	 * 设置state
	 * 
	 * @param state
	 *            state
	 */
	public void setState(String state) {
		this.state = state;
	}

	/**
	 * 获取type
	 * 
	 * @return type type
	 */
	public String getType() {
		return type;
	}

	/**
	 * 设置type
	 * 
	 * @param type
	 *            type
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * 获取videoTime
	 * 
	 * @return videoTime videoTime
	 */
	public BigInteger getVideoTime() {
		return videoTime;
	}

	/**
	 * 设置videoTime
	 * 
	 * @param videoTime
	 *            videoTime
	 */
	public void setVideoTime(BigInteger videoTime) {
		this.videoTime = videoTime;
	}

	/**
	 * 获取videoSize
	 * 
	 * @return videoSize videoSize
	 */
	public BigInteger getVideoSize() {
		return videoSize;
	}

	/**
	 * 设置videoSize
	 * 
	 * @param videoSize
	 *            videoSize
	 */
	public void setVideoSize(BigInteger videoSize) {
		this.videoSize = videoSize;
	}

	/**
	 * 获取userId
	 * 
	 * @return userId userId
	 */
	public String getUserId() {
		return userId;
	}

	/**
	 * 设置userId
	 * 
	 * @param userId
	 *            userId
	 */
	public void setUserId(String userId) {
		this.userId = userId;
	}

	/**
	 * 获取areaScope
	 * 
	 * @return areaScope areaScope
	 */
	public String getAreaScope() {
		return areaScope;
	}

	/**
	 * 设置areaScope
	 * 
	 * @param areaScope
	 *            areaScope
	 */
	public void setAreaScope(String areaScope) {
		this.areaScope = areaScope;
	}

	/**
	 * 获取startDate
	 * 
	 * @return startDate startDate
	 */
	public Date getStartDate() {
		return startDate;
	}

	/**
	 * 设置startDate
	 * 
	 * @param startDate
	 *            startDate
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	/**
	 * 获取stopDate
	 * 
	 * @return stopDate stopDate
	 */
	public Date getStopDate() {
		return stopDate;
	}

	/**
	 * 设置stopDate
	 * 
	 * @param stopDate
	 *            stopDate
	 */
	public void setStopDate(Date stopDate) {
		this.stopDate = stopDate;
	}

	/**
	 * 获取redEnvelopMin
	 * 
	 * @return redEnvelopMin redEnvelopMin
	 */
	public Integer getRedEnvelopMin() {
		return redEnvelopMin;
	}

	/**
	 * 设置redEnvelopMin
	 * 
	 * @param redEnvelopMin
	 *            redEnvelopMin
	 */
	public void setRedEnvelopMin(Integer redEnvelopMin) {
		this.redEnvelopMin = redEnvelopMin;
	}

	/**
	 * 获取redEnvelopMax
	 * 
	 * @return redEnvelopMax redEnvelopMax
	 */
	public Integer getRedEnvelopMax() {
		return redEnvelopMax;
	}

	/**
	 * 设置redEnvelopMax
	 * 
	 * @param redEnvelopMax
	 *            redEnvelopMax
	 */
	public void setRedEnvelopMax(Integer redEnvelopMax) {
		this.redEnvelopMax = redEnvelopMax;
	}

	/**
	 * 获取redEnvelopTotal
	 * 
	 * @return redEnvelopTotal redEnvelopTotal
	 */
	public Integer getRedEnvelopTotal() {
		return redEnvelopTotal;
	}

	/**
	 * 设置redEnvelopTotal
	 * 
	 * @param redEnvelopTotal
	 *            redEnvelopTotal
	 */
	public void setRedEnvelopTotal(Integer redEnvelopTotal) {
		this.redEnvelopTotal = redEnvelopTotal;
	}

	/**
	 * 获取redEnvelopResidue
	 * 
	 * @return redEnvelopResidue redEnvelopResidue
	 */
	public Integer getRedEnvelopResidue() {
		return redEnvelopResidue;
	}

	/**
	 * 设置redEnvelopResidue
	 * 
	 * @param redEnvelopResidue
	 *            redEnvelopResidue
	 */
	public void setRedEnvelopResidue(Integer redEnvelopResidue) {
		this.redEnvelopResidue = redEnvelopResidue;
	}

	/**
	 * 获取driverNum
	 * 
	 * @return driverNum driverNum
	 */
	public Integer getDriverNum() {
		return driverNum;
	}

	/**
	 * 设置driverNum
	 * 
	 * @param driverNum
	 *            driverNum
	 */
	public void setDriverNum(Integer driverNum) {
		this.driverNum = driverNum;
	}

	/**
	 * 获取driverPlayNum
	 * 
	 * @return driverPlayNum driverPlayNum
	 */
	public Integer getDriverPlayNum() {
		return driverPlayNum;
	}

	/**
	 * 设置driverPlayNum
	 * 
	 * @param driverPlayNum
	 *            driverPlayNum
	 */
	public void setDriverPlayNum(Integer driverPlayNum) {
		this.driverPlayNum = driverPlayNum;
	}

	/**
	 * 获取userName
	 * 
	 * @return userName userName
	 */
	public String getUserName() {
		return userName;
	}

	/**
	 * 设置userName
	 * 
	 * @param userName
	 *            userName
	 */
	public void setUserName(String userName) {
		this.userName = userName;
	}

}
